Skip to content

feat: cross-repository artifact linking#8

Merged
avrabe merged 15 commits intomainfrom
feat/cross-repo-linking
Mar 14, 2026
Merged

feat: cross-repository artifact linking#8
avrabe merged 15 commits intomainfrom
feat/cross-repo-linking

Conversation

@avrabe
Copy link
Contributor

@avrabe avrabe commented Mar 10, 2026

Summary

  • Add externals config block in rivet.yaml for declaring cross-repo dependencies (git URL or local path)
  • Prefixed ID syntax (rivet:REQ-001) for cross-repo artifact references
  • rivet sync — fetch/clone external repos into .rivet/repos/ cache (symlinks for local paths)
  • rivet lock — pin externals to exact commit SHAs in rivet.lock
  • rivet validate — cross-repo link validation, bidirectional backlink detection, circular dependency warnings, version conflict detection, V-model lifecycle completeness checks
  • rivet baseline verify <name> / rivet baseline list — distributed baselining via baseline/* convention tags
  • embed-wasm feature flag for single-binary WASM/JS asset embedding
  • Built-in docs: cross-repo topic, STPA/ASPICE/cybersecurity methodology references
  • Dogfood artifacts: REQ-020/021/022, DD-014–017, FEAT-033–039

Architecture

Mesh topology — any rivet repo can link to any other. No central authority. Bidirectional links stored on one side, backlinks computed at analysis time (OSLC model). Transitive dependency discovery. Distributed baselines via git tags.

New modules

  • rivet-core/src/externals.rs (1361 lines) — sync, load, validate, lockfile, baseline, backlinks, cycle/conflict detection
  • rivet-core/src/lifecycle.rs (218 lines) — V-model traceability completeness checks

Test plan

  • 30 new tests (24 externals, 4 lifecycle, 2 config integration)
  • 194 total tests passing
  • Clippy clean with -D warnings
  • Manual: rivet sync with a real external repo
  • Manual: rivet baseline verify with tagged repos
  • Manual: rivet validate with cross-repo links in meld

🤖 Generated with Claude Code

Co-Authored-By: Claude Opus 4.6 noreply@anthropic.com

@codecov
Copy link

codecov bot commented Mar 10, 2026

Codecov Report

❌ Patch coverage is 88.23529% with 122 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
rivet-core/src/externals.rs 86.47% 122 Missing ⚠️

📢 Thoughts on this report? Let us know!

avrabe and others added 15 commits March 13, 2026 18:33
Add ExternalProject struct and optional externals field to ProjectConfig,
supporting both git URL and local path sources with prefix-based
cross-linking. This is the foundation for cross-repo artifact tracing.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Implements: FEAT-033

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Implements sync_external (symlink for path, clone/fetch for git),
sync_all (batch sync), and ensure_gitignore (.rivet/ cache entry).

Implements: FEAT-034

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Implements: FEAT-038

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Implements: FEAT-038

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Implements: FEAT-035

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Implements: FEAT-038

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Implements: FEAT-038

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Implements: FEAT-038

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Checks that artifacts with "done"/"implemented" status have complete
downstream traceability chains (requirement → architecture → design → test).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Implements: FEAT-037

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Trace: skip

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Implements: FEAT-036

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Trace: skip

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Fix clippy for_kv_map warnings
- Extract resolve_external_dir helper
- Add serial_test for flaky git-dependent tests

Trace: skip

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@avrabe avrabe force-pushed the feat/cross-repo-linking branch from 9ee3657 to bfe997b Compare March 14, 2026 15:10
@avrabe avrabe merged commit 7e36c8e into main Mar 14, 2026
13 of 15 checks passed
@avrabe avrabe deleted the feat/cross-repo-linking branch March 14, 2026 15:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant